home *** CD-ROM | disk | FTP | other *** search
/ 501 Great Games / 501 Great Games - Volume One (2001)(Guildhall Leisure Services).iso / SPELLING TEST / SPELLING.BAS < prev    next >
BASIC Source File  |  1991-09-07  |  10KB  |  277 lines

  1. DefInt A-Z
  2.  
  3. ' Removes various menu items from the System menu of the specified Form.
  4. '
  5. Sub Remove_Items_From_Sysmenu (A_Form As Form)
  6.  
  7.     ' Obtain the handle to the forms System menu
  8.     '
  9.     HSysMenu = GetSystemMenu(A_Form.Hwnd, 0)
  10.   
  11.     ' Remove all but the MOVE and CLOSE options.  The menu items
  12.     ' must be removed starting with the last menu item.
  13.     '
  14.     R = RemoveMenu(HSysMenu, 8, MF_BYPOSITION) 'Switch to
  15.     R = RemoveMenu(HSysMenu, 7, MF_BYPOSITION) 'Separator
  16.     R = RemoveMenu(HSysMenu, 5, MF_BYPOSITION) 'Separator
  17.  
  18. End Sub
  19.  
  20. ' Since the Swap statement is not supported by Visual Basic, this
  21. ' routine is used to perform the task of swapping two integer values.
  22. '
  23. Sub Swap_Values (Param1, Param2)
  24.  
  25.     Temp = Param1
  26.     Param1 = Param2
  27.     Param2 = Temp
  28.  
  29. End Sub
  30.  
  31. ' Selecting a new drive from the list of a Drive controls drop
  32. ' down list does not generate an error if the drive is not ready,
  33. ' so when a new drive is selected, we determine if it is ready
  34. ' or not.  This routine validates the selected drive and is use
  35. ' by both the SaveFileDlg's and Viewers's Drive control
  36. '
  37. Sub Validate_And_Change_Drives (A_Form As Form)
  38.     
  39.     On Error Resume Next
  40.     Err = FALSE
  41.  
  42.     ' Invoking the Dir$() function with the selected drive will generate
  43.     ' an error if the drive is not ready.  We don't care about the return
  44.     ' value, we just care if an error is generated or not.
  45.     '
  46.     Dummy$ = Dir$(Left$(A_Form.Drv_DriveList.Drive, 2))
  47.  
  48.     If Err Then
  49.         '
  50.         ' The drive was not ready, so prompt the user
  51.         '
  52.         Beep
  53.         MsgBox Error$(Err), 16, "IconWorks - ERROR: " + Format$(Err)
  54.  
  55.         ' Reset the Drive Control back to its previously selected drive
  56.         '
  57.         A_Form.Drv_DriveList.Drive = Left$(A_Form.Dir_DirectoryList.Path, 2)
  58.     Else
  59.         ' The drive is ready, so change to that drive
  60.         '
  61.         ChDrive A_Form.Drv_DriveList.Drive
  62.         A_Form.Dir_DirectoryList.Path = CurDir$
  63.     End If
  64.   
  65.     On Error GoTo 0
  66.  
  67. End Sub
  68.  
  69. ' A Sub Main is used instead of a startup form to allow the user
  70. ' to startup either the Editor or Viewer as the main form.  The
  71. ' Editor is the Default main form, however starting Spelling
  72. ' with a command line of "v" or "V" will start Spelling with
  73. ' the Viewer as the main form.
  74. '
  75. Sub Main ()
  76.   
  77.     ' Check video mode.  If less than EGA, terminate Spelling
  78.     '
  79.     If Screen.Height < EGA_HEIGHT Then
  80.         MsgBox "Spelling requires EGA or Better.", 16, "Spelling"
  81.         End
  82.     Else
  83.         ' Since you cannot assign values like TAB, CR, and LF to string
  84.         ' constants, the values of TAB and CRLF which are used frequently
  85.         ' thoughout Spelling when displaying messages, these values are
  86.         ' are assigned to the global string values of A_TAB and CRLF
  87.         '
  88.         A_TAB = Chr$(9)
  89.         CRLF = Chr$(13) + Chr$(10)
  90.  
  91.         'If Not Help_File_In_Path() Then
  92.         '    Text = "ICONWRKS.HLP not found in your path." + CRLF + CRLF
  93.         '    Text = Text + "Windows searches your PATH environment variable for help files, "
  94.         '    Text = Text + "so you need to copy ICONWRKS.HLP to a directory included in your "
  95.         '    Text = Text + "PATH if you wish to obtain help while running Spelling."
  96.         '    MsgBox Text, 48, "Spelling help not available"
  97.         'End If
  98.         
  99.         ' Determine which form to use as main form, Editor) or the Viewer
  100.         '
  101.         If (Command$ = "") Or (UCase$(Left$(Command$, 1)) <> "V") Then
  102.             '
  103.             ' Editor is main form
  104.             '
  105.             MainForm = ICONWORKS_EDITOR
  106.             AboutBox.Show
  107.         Else
  108.             ' Viewer is main form
  109.             '
  110.             MainForm = ICONWORKS_VIEWER
  111.             AboutBox.Show
  112.         End If
  113.     End If
  114.  
  115. End Sub
  116.  
  117. ' Displays the selected help topic selected from either
  118. ' Editors;' or Viewer's help menu.
  119. '
  120. Sub Get_Help (HelpTopic As Integer)
  121.   
  122.     If HelpTopic = MID_USING_HELP Then
  123.         '
  124.         ' "Using Help" was selected so display the Standard Windows Help
  125.         ' Topic for "Using Help".
  126.         '
  127.         R = WinHelp(Viewer.Hwnd, Dummy$, HELP_HELPONHELP, 0)
  128.     Else
  129.         ' A help topic other the "Using help" was selected.
  130.         '
  131.         R = WinHelp(Viewer.Hwnd, "ICONWRKS.HLP", HELP_CONTEXT, CLng(HelpTopic))
  132.     End If
  133.  
  134. End Sub
  135.  
  136. ' This routine is used by the SaveFileDlg and the Viewer to update the
  137. ' filespec displayed in the FileName TextBox whenever the forms Directory
  138. ' ListBox control is Single Clicked.  Since a Single click does not
  139. ' actually make a selection, this routine is called in response to a
  140. ' single click to display what would be the result if a double click
  141. ' is performed or if Enter is pressed.
  142. '
  143. Sub UpDate_FileSpec (A_Form As Form)
  144. Dim SelPath As String, CurPath As String, Slash As String
  145.  
  146.     CurPath = A_Form.Lbl_CurrentDirectory.Caption
  147.     SelPath = A_Form.Dir_DirectoryList.List(A_Form.Dir_DirectoryList.ListIndex)
  148.  
  149.     Select Case A_Form.Dir_DirectoryList.ListIndex
  150.         
  151.         Case Is >= 0
  152.             '
  153.             ' A subdirectory from the Current directory was selected
  154.             '
  155.             I = Right$(CurPath, 1) <> "\"
  156.             A_Form.Txt_FileName.Text = Right$(SelPath, Len(SelPath) - Len(CurPath) + I) + "\" + A_Form.File_FileList.Pattern
  157.         
  158.         Case Is = -1
  159.             '
  160.             ' The current directory was selected
  161.             '
  162.             A_Form.Txt_FileName.Text = A_Form.File_FileList.Pattern
  163.         
  164.         Case Is < -1
  165.             '
  166.             ' A parent directory of the Current directory was selected
  167.             '
  168.             SelPath = Right$(SelPath, Len(SelPath) - 2)
  169.             If Len(SelPath) > 1 Then Slash = "\"
  170.             A_Form.Txt_FileName.Text = SelPath + Slash + A_Form.File_FileList.Pattern
  171.     
  172.     End Select
  173.  
  174. End Sub
  175.  
  176. ' When a filespec is entered into either the Viewer's Filename
  177. ' TextBox or the SaveFileDlg's Filename TextBox, this routine is
  178. ' called to validate the FileSpec.  The name and path, if one is
  179. ' given, is validated.  If a valid FileSpec to an actual file is
  180. ' entered and the file does not exist, the return value depends
  181. ' on which Form called this routine, since a if called from the
  182. ' SaveFileDlg a "File Not Found" error is generated but that is
  183. ' OK since a file does not have to exist to write to it.  However,
  184. ' if called from the Viewer, the same error will be generated but
  185. ' in this case the file must exists since the Viewer is wants to
  186. ' open the file for editing.
  187. '
  188. Function Validate_FileSpec (AForm As Form, MustExist)
  189. Dim Temp As String
  190.  
  191.     ' Enable error trapping
  192.     '
  193.     On Error GoTo ErrorInSpec
  194.  
  195.     Validate_FileSpec = FALSE
  196.  
  197.     ' Check for valid DOS Path and Filenames.
  198.     '
  199.     Temp = Dir$(AForm.Txt_FileName.Text)
  200.  
  201.     ' The following statement does alot.  It the FileSpec contains
  202.     ' a Path, the FileSpec will be parsed and the Path will be assign
  203.     ' to the File ListBox's Path property.  If the FileSpec contains
  204.     ' Wild card characters, it will be assign to the File ListBox's
  205.     ' pattern property.  If the FileSpec contains a valid file name
  206.     ' and the file exists, a Double Click event will automatically be
  207.     ' generated for the File ListBox.  If the File does not exist,
  208.     ' a "File Not Found" error will be generated which we trap.
  209.     '
  210.     AForm.File_FileList.FileName = AForm.Txt_FileName.Text
  211.   
  212. Exit_The_Function:
  213.  
  214.     ' Turn off error trapping and exit the function
  215.     '
  216.     On Error GoTo 0
  217.     Exit Function
  218.  
  219. ErrorInSpec:
  220.     If (Err <> FILE_NOT_FOUND) Or ((Err = FILE_NOT_FOUND) And MustExist) Then
  221.         '
  222.         ' An error other than "File Not Found" occured, or the error
  223.         ' "File Not Found" occured and this Function was invoked from
  224.         ' the Viewer which requires the file to exist.
  225.         '
  226.         Beep
  227.         MsgBox Error$(Err), 16, "IconWorks - ERROR: " + Format$(Err)
  228.     Else
  229.         ' The FileSpec entered contain no errors other than maybe
  230.         ' "File Not Found".
  231.         '
  232.         If Err = FILE_NOT_FOUND Then
  233.             ' A Valid filename was entered in the SaveFileDlg which did not exist
  234.             ' so the File Control did not parse the FileSpec for us.  Since the
  235.             ' FileSpec could contain a path specification, force File control
  236.             ' to parse the Filename string for us by changing last character to
  237.             ' an asterisk "*" and assign the modified FileSpec to the File Controls
  238.             ' FileName property.  The asterisk "*" makes the Filename appear as a
  239.             ' FileSpec rather than a Filename to the File ListBox and it will parse
  240.             ' it for us whether there are any matching files or not.  After it has
  241.             ' been parsed, we change the "*" back to its previous value.
  242.             '
  243.             Temp = Right$(AForm.Txt_FileName.Text, 1)
  244.             AForm.File_FileList.FileName = Left$(AForm.Txt_FileName.Text, Len(AForm.Txt_FileName.Text) - 1) + "*"
  245.             AForm.Txt_FileName.Text = Left$(AForm.File_FileList.Pattern, Len(AForm.File_FileList.Pattern) - 1) + Temp
  246.         End If
  247.         Validate_FileSpec = TRUE
  248.     End If
  249.     Resume Exit_The_Function
  250.  
  251. End Function
  252.  
  253. Function Help_File_In_Path ()
  254. Dim Path As String, CurrentDir As String
  255.  
  256.     On Error Resume Next
  257.  
  258.     Path = Environ$("PATH")
  259.     If Path <> "" Then
  260.         If Right$(Path, 1) <> ";" Then Path = Path + ";"
  261.         SemiColon = InStr(Path, ";")
  262.         Do
  263.             CurrentDir = Left$(Path, SemiColon - 1)
  264.             If Right$(CurrentDir, 1) <> "\" Then CurrentDir = CurrentDir + "\"
  265.             Found = Dir$(CurrentDir + "IconWrks.HLP") <> ""
  266.             Path = Right$(Path, Len(Path) - SemiColon)
  267.             SemiColon = InStr(Path, ";")
  268.         Loop While ((SemiColon <> 0) And Not Found)
  269.     End If
  270.  
  271.     Help_File_In_Path = Found
  272.  
  273.     On Error GoTo 0
  274.  
  275. End Function
  276.  
  277.